AL | подфункция |
0 | Проверит наличие Выход: AL == 00h => не установлен, можно устанавливать AL == 01h => не установлен, нельзя устанавливать AL == FFh => установлен Примечание: Novell DOS версии 7 обнуляет регистр AH |
1 | Добавить файл в очередь печати |
2 | Удалить файл из очереди печати Вход: DS:DX - адрес (смещение,сегмент) строки ASCIIZ, содержащей полный путь к файлу, направляемого в очередь печати Выход: Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки |
3 | Очистить очередь печати Выход: Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки |
4 | Приостановить печать и получить статус Выход: DX - количество возникших ошибок с последнего вызова этой функции DS:SI - очередь печати Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки Примечание: Очередь печати представляет из себя массив строк, каждая из которых имеет длинну 64 байта и содержит полный путь к печатаемому файлу Первая запись в масииве - файл, который печатается сейчас. Признаком конца массива является пустая запись. |
5 | Продолжить печать Выход: Если установлен флаг CF, то произошла ошибка, и AX содержит код ошибки Эта функция вызывается для возобновления печати после выполнения функции 4 |
6 | Узнать состояние принтераDOS 3.3+ Выход: Если флаг CF установлен: В очереди печати есть файлы AX - код ошибки DS:SI - указатель на заголовок драйвера устройства Если флаг CF установлен: Очередь печати пуста AX=0 |
Код | Значение |
01 | Невеврный номер функции |
02 | Файл не найден |
03 | Путь не найден |
04 | Нет доступного HANDLE (слишком много открытых файлов |
05 | Ошибка доступа |
06 | Неверный HANDLE |
08 | Очередь переполнена |
09 | Программа печати занята |
0Ch | Полный путь к файлу слишком длинный |
0Fh | Неверный диск |
AL | подфункция |
0 | Проверить наличие Выход: AL == 00h => не установлен, можно устанавливать AL == 01h => не установлен, нельзя устанавливать AL == FFh => установлен |
1 | Получить состояние |
AL | подфункция |
0 | Проверить наличие Выход: AL == 00h => не установлен, можно устанавливать AL == 01h => не установлен, нельзя устанавливать AL == FFh => установлен |
1 | Добавить блочное устройство |
2 | Выполнить запрос к драйверу устройства |
3 | Получить таблицы параметров устройств DOS 4+ |
Смещение | Размер | Описание |
00h | DWORD | Указатель на следующую таблицу (либо 0xFFFFh, если это последняя таблица) |
04h | BYTE | Номер устройства BIOS |
05h | BYTE | Номер устройства DOS (0 = A: ; 1 = B: ; ...) |
06h | 19*BYTE | BPB (cм. функцию 53h прерывания 21h) |
19h | BYTE | Флаги : Бит 6 - если установлен, то используется FAT16, иначе - FAT12 Остальные биты не определены |
1Ah | WORD | Счётчик ссылок на диск |
1Ch | 11*BYTE | Имя диска или "NO NAME ", если оно не заданно. Для несъёмных дисков всегда "NO NAME " |
27h | BYTE | Ноль |
28h | BYTE | Тип устройства (см. функцию 44h подфункцию 0Dh прерывания 21h) |
29h | WORD | Флаги: Бит 0 - если установлен, то это несъёмный диск Бит 1 - имеется сигнал смены носителя Бит 2 - текущий BPB залочен Бит 3 - все сектора на треке имеют одинаковый размер Бит 4 - Физучиское устройство имеет несколько логических устройств Бит 5 - current logical drive for shared physical drive (Что бы это означало?) Бит 6 - Обнаружена смена диска Бит 7 - Параметры устройства изменились (см. функцию 44h подфункцию 0Dh прерывания 21h) Бит 8 - Диск был отфрматирован (BPB изменилась) Бит 9 - флаг доступа (см. функцию 44h подфункцию 0Dh прерывания 21h) Остальные биты не определенны |
2Bh | WORD | Кол-во цилиндров |
2Dh | 19*BYTE | BPB для носителя с максимальной поддерживаемой ёмкостью |
40h | 3*BYTE | Неизвестно |
43h | 9*BYTE | Неизвестно (на MS-DOS 3.30 для несъёмных дисков записанно "NO NAME ", в остальных случаях - нули) |
4Ch | BYTE | Последний считанный байт??? |
4Dh | DWORD | Для дисков со съёмным носителем: Время последнего обращения к диску (0xFFFFFFFF если никогда) Для несъёмных дисков: Cлово по смещению 4Dh: - тип раздела (1 для расширенного и 0xFFFF для основного) Слово со смещению 4Fh: - номер цилинлра, на котором начинается раздел |
Смещение | Размер | Описание |
00h | DWORD | Указатель на следующую таблицу (либо 0xFFFFh, если это последняя таблица) |
04h | BYTE | Номер устройства BIOS |
05h | BYTE | Номер устройства DOS (0 = A: ; 1 = B: ; ...) |
06h | 25*BYTE | BPB (cм. функцию 53h прерывания 21h) |
1Fh | BYTE | Флаги : Бит 6 - если установлен, то используется FAT16, иначе - FAT12 Бит 7 - неподдерживаемый диск (если установлен, то любая попытка дуступа приведёт к ошибке "Устройство не готово") Остальные биты не определены |
20h | WORD | Счётчик ссылок на диск |
22h | BYTE | Тип устройства (см. функцию 44h подфункцию 0Dh прерывания 21h) |
23h | WORD | Флаги: Бит 0 - если установлен, то это несъёмный диск Бит 1 - имеется сигнал смены носителя Бит 2 - текущий BPB залочен Бит 3 - все сектора на треке имеют одинаковый размер Бит 4 - Физучиское устройство имеет несколько логических устройств Бит 5 - current logical drive for shared physical drive (Что бы это означало?) Бит 6 - Обнаружена смена диска Бит 7 - Параметры устройства изменились (см. функцию 44h подфункцию 0Dh прерывания 21h) Бит 8 - Диск был отфрматирован (BPB изменилась) Бит 9 - флаг доступа (см. функцию 44h подфункцию 0Dh прерывания 21h) Остальные биты не определенны |
25h | WORD | Кол-во цилиндров |
27h | 25*BYTE | BPB для носителя с максимальной поддерживаемой ёмкостью |
40h | 6*BYTE | Резерв |
46h | BYTE | Номер последнего считанного трека |
47h | DWORD | Для дисков со съёмным носителем: Время последнего обращения к диску (0xFFFFFFFF если никогда) Для несъёмных дисков: Cлово по смещению 4Dh: - тип раздела (1 для расширенного и 0xFFFF для основного). Для DOS 5+ всегда 1. Слово со смещению 4Fh: - номер цилинлра, на котором начинается раздел (в DOS 4.0 для основного рзадела FFFFh) |
4Bh | 11*BYTE | Имя диска или "NO NAME ", если оно не заданно. |
56h | BYTE | Ноль |
57h | DWORD | Серийный номер |
5Bh | 8*BYTE | Файловая система, обычно "FAT16 " или "FAT12 " |
63h | BYTE | Ноль |
Смещение | Размер | Описание |
00h | DWORD | Указатель на следующую таблицу (либо 0xFFFFh, если это последняя таблица) |
04h | BYTE | Номер устройства BIOS |
05h | BYTE | Номер устройства DOS (0 = A: ; 1 = B: ; ...) |
06h | 25*BYTE | BPB (cм. функцию 53h прерывания 21h) |
1Fh | 6*BYTE | Резерв |
25h | BYTE | Флаги : Бит 5 - предположительно, большой раздел Бит 6 - если установлен, то используется FAT16, иначе - FAT12 Остальные биты не определены |
26h | WORD | Предположительно, счётчик ссылок на диск |
28h | 11*BYTE | Имя диска или "NO NAME ", если оно не заданно. Для несъёмных дисков всегда "NO NAME " |
33h | BYTE | Ноль |
34h | BYTE | Тип устройства (см. функцию 44h подфункцию 0Dh прерывания 21h) |
35h | WORD | Флаги: Бит 0 - если установлен, то это несъёмный диск Бит 1 - имеется сигнал смены носителя Бит 2 - текущий BPB залочен Бит 3 - все сектора на треке имеют одинаковый размер Бит 4 - Физучиское устройство имеет несколько логических устройств Бит 5 - current logical drive for shared physical drive (Что бы это означало?) Бит 6 - Обнаружена смена диска Бит 7 - Параметры устройства изменились (см. функцию 44h подфункцию 0Dh прерывания 21h) Бит 8 - Диск был отфрматирован (BPB изменилась) Бит 9 - флаг доступа (см. функцию 44h подфункцию 0Dh прерывания 21h) Остальные биты не определенны |
37h | WORD | Кол-во цилиндров |
39h | 25*BYTE | BPB для носителя с максимальной поддерживаемой ёмкостью |
52h | 6*BYTE | Резерв |
58h | BYTE | Последний считанный байт??? |
59h | DWORD | Для дисков со съёмным носителем: Время последнего обращения к диску (0xFFFFFFFF если никогда) Для несъёмных дисков: Cлово по смещению 4Dh: - тип раздела (1 для расширенного и 0xFFFF для основного) Слово со смещению 4Fh: - номер цилинлра, на котором начинается раздел |